home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 5 / Apprentice-Release5.iso / Source Code / C / Applications / GW AdaEd 1.4.2 / GWAdaDemos / NYUDemos / PRIMES.ADA < prev    next >
Text File  |  1993-01-31  |  727b  |  42 lines

  1. with TEXT_IO; use TEXT_IO;
  2. procedure PRIMES is
  3.  
  4.    package INT_IO is new INTEGER_IO(INTEGER);
  5.    use INT_IO;
  6.  
  7.    NUM_PRIMES : constant := 5;
  8.    COUNT      : INTEGER := 0;
  9.  
  10.    function IS_PRIME(P : INTEGER) return BOOLEAN is
  11.    begin
  12.  
  13.       if P < 2 then 
  14.          return FALSE;
  15.       end if;
  16.  
  17.       for I in 2 .. P loop
  18.          if I * I > P then
  19.         return TRUE;
  20.      elsif P mod I = 0 then
  21.         return FALSE;
  22.      end if;
  23.       end loop;
  24.  
  25.    end IS_PRIME;
  26.  
  27. begin
  28.  
  29.    PUT_LINE("The first " & INTEGER'image(NUM_PRIMES) & " primes are:");
  30.    for P in 2 .. INTEGER'LAST loop
  31.       if IS_PRIME(P) then
  32.     PUT(P);
  33.         PUT(" ");
  34.     COUNT := COUNT + 1;
  35.     exit when COUNT = NUM_PRIMES;
  36.       end if;
  37.    end loop;
  38.  
  39.    NEW_LINE;
  40.  
  41. end PRIMES;
  42.